package ar.com.tallerdos.smartdinner.adapter;

import java.util.Collections;
import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;
import ar.com.tallerdos.smartdinner.R;
import ar.com.tallerdos.smartdinner.activity.SeleccionarMesasActivity;
import ar.com.tallerdos.smartdinner.model.Mesa;

public class SeleccionarMesaAdapter extends BaseAdapter implements OnClickListener {
    
    private List<Mesa> mesas;
    private Boolean[] mesasSeleccionadas;
    private SeleccionarMesasActivity context;
    
    public SeleccionarMesaAdapter(SeleccionarMesasActivity context, List<Mesa> mesas, List<Mesa> mesasSeleccionadas) {
	this.mesas = mesas;
	this.mesas.addAll(mesasSeleccionadas);
	Collections.sort(this.mesas);
	this.context = context;
	this.mesasSeleccionadas = new Boolean[mesas.size()];
	for (int i = 0; i < mesas.size(); i++) {
	    if (mesasSeleccionadas.contains(mesas.toArray()[i])) {
		this.mesasSeleccionadas[i] = Boolean.valueOf(true);
	    } else {
		this.mesasSeleccionadas[i] = Boolean.valueOf(false);
	    }	    
	}
    }

    @Override
    public int getCount() {
	return this.mesas.size();
    }

    @Override
    public Object getItem(int position) {
	return this.mesas.get(position);
    }

    @Override
    public long getItemId(int position) {
	return this.mesas.get(position).getId();
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater infalInflater = (LayoutInflater) this.context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.seleccion_multiple_row, null);
        }       
        
        CheckBox cb = (CheckBox) convertView.findViewById(R.id.seleccionMultipleChkBox);
        cb.setChecked(this.mesasSeleccionadas[position]);
        cb.setTag(Integer.valueOf(position));
        cb.setOnClickListener(this);
        
        cb.setBackgroundColor(R.drawable.ic_back04);
        
        TextView descripcion = (TextView) convertView.findViewById(R.id.seleccionMultipleLabel);
        descripcion.setText("Mesa " + this.mesas.get(position).getCodigo().toString());
        
        return convertView;
    }

    @Override
    public void onClick(View view) {
	Integer position = (Integer) view.getTag();
	this.mesasSeleccionadas[position] = (((CheckBox) view).isChecked());	
    }

    public Boolean[] getMesasSeleccionadas() {
        return mesasSeleccionadas;
    }

    public void setMesasSeleccionadas(Boolean[] mesasSeleccionadas) {
        this.mesasSeleccionadas = mesasSeleccionadas;
    }
    
    

}
